/*******************************************************************************************
 *  ChangeDirection.h
 *
 *  Creating and managing ChangeDirection object structures.
 *
 *******************************************************************************************/







/*******************************************************************************************
 *  INCLUDES :
 *******************************************************************************************/
#include "BulletMLConsts.h"
#include "BulletMLTypes.h"
#include "Direction.h"







/*******************************************************************************************
 *  TYPE definitions :
 *******************************************************************************************/

/* The CHANGEDIRECTION object strucuture definition : */
#ifndef _CHANGEDIRECTION_STRUCT_
#define _CHANGEDIRECTION_STRUCT_
typedef struct {

	ObjType		otype;						/* The object's type, as in the ...         */
											/* ... BulletML type enum.                  */

	char		*term;						/* The number of frames the change ...      */
											/* ... will take.                           */

	Direction	*direction;					/* The final direction we want to shift to. */

} ChangeDirection;
#endif







/*******************************************************************************************
 *  Function PROTOTYPES :
 *******************************************************************************************/

/* CONSTRUCTOR and DESTRUCTOR : */
ChangeDirection	*newChangeDirection(void);					/* Creates an empty ChangeDirection ... */
 															/* ... object strucutre.                */
void 			freeChangeDirection(ChangeDirection *cd);	/* Destroys an ChangeDirection ...      */
															/* ... object structure.                */ 


/* FILLING the ChangeDirection object structure : */
void 			setChangeDirectionTerm(ChangeDirection *cd, char *t);
void 			setChangeDirectionDirection(ChangeDirection *cd, Direction *d);
